"use strict"

import {Native} from './native.js'

/**
 * 扫描二维码（包括条码）
 * @static
 * @author GuoHua Liu
 * @copyright Copyright © 2019 GuoHua Liu. All rights reserved.
 */
class qrcode {
    /**
     * 发起扫描
     *
     * @returns {Promise} 成功回调参数类型为`{code:string}`, 失败回调参数类型为`{errMsg,errCode}`，其中errCode可能是:
     *
     * - -1 环境不支持
     * - 1 用户取消扫描
     * - 其他 未知错误
     */
    static scan() {
        return new Promise((resolve,reject)=>{
            if (!Native.getInstance().isHos()) {
                reject({errMsg:"环境不支持扫描", errCode:-1})
                return
            }
            Native.getInstance().callNative("qrcode", {
                "method":"scan"
            }, true, (result)=>{
                resolve(result)
            }, (error)=>reject(error));
        })
    }
}

export {qrcode}
